package cn.com.bluemoon.bd.flink.dim.processor;

/**
 * 维表处理接口
 * @param <I> 输入数据的类型
 * @param <W> 宽表数据的类型
 * @author 王仁线
 */
public interface IDimProcessor<I, W> {
    /**
     * 初始化
     * @throws Exception
     */
    void open() throws Exception;

    /**
     * 装配维表数据
     * @param in
     * @param w
     * @throws Exception
     */
    void process(I in, W w) throws Exception;

    /**
     * 重新加载维表数据，一般从维表数据库加载并更新内存中的维表数据
     * @throws Exception
     */
    void reload() throws Exception;

    /**
     * 资源释放
     * @throws Exception
     */
    void close() throws Exception;
}
